#include <cstdio>
#include <cstring>
#include <iostream>
#include <sstream>
#include <cmath>
#include <algorithm>
#include <string>
#include <stack>
#include <queue>
#include <vector>
#include <map>
using namespace std;

bool cmp(int a, int b)
{
    return a > b;
}

int main()
{
    int flag[100005];
    int k,n[105];
    int cnt[105];
    memset(cnt, 0, sizeof(cnt));
    memset(flag, 0, sizeof(flag));
    scanf("%d", &k);
    for(int i = 1; i <= k; i++)
    {
        int t;
        scanf("%d", &n[i]);
        t = n[i];
        while(t > 1)
        {
            if(t % 2 == 0)
                t /= 2;
            else
                t = (3 * t + 1) / 2;
            flag[t] = 1;
        }
    }
    int j = 0;
    for(int i = 1; i <= k; i++)
    {
        if(flag[n[i]] == 0)
        {
            cnt[j] = n[i];
            j++;
        }
    }
    sort(cnt, cnt + j, cmp);
    for(int i = 0; i < j; i++)
    {
        if(i != j-1)
            printf("%d ", cnt[i]);
        else
            printf("%d\n", cnt[i]);
    }
    return 0;
}